有一些数学函数可以在 EbsScript 中使用:
名称 |
目的 |
参数 |
返回值 |
例子 |
abs |
绝对值 |
1: INTEGER 或 REAL: |
INTEGER 或 REAL |
abs ( -3.7 ); 结果为 3.7 |
acos |
弧余弦 |
1: REAL: |
REAL |
acos(0); 结果为 1.570796 |
asin |
弧正弦 |
1: REAL: |
REAL |
asin(1); 结果为 1.570796 |
atan |
弧正切 |
1: REAL: |
REAL |
atan(1); 结果为 0.785398 |
atof |
将字符串转换为实数 |
1: STRING: |
REAL |
atof ("-12.34"); |
atoi |
将字符串转换为整数 |
1: STRING: |
INTEGER |
atoi ("-12"); 结果为 -12 |
ceil |
上限(下一个较大的整数) |
1: REAL: |
REAL |
ceil(-1.23); 结果为 -1 |
cos |
余弦 |
1: REAL: |
REAL |
cos(0); 结果为 1 |
exp |
指数(自然) |
1: REAL: |
REAL |
exp(1); 结果为 2.718282 |
finite |
检查一个实数变量是否有一个有效的有限值。这个函数允许确定无效的实数值以及除以零的结果。 |
1: REAL: |
BOOLEAN |
var r1,r2:real; begin enableRealDivByZeroException(false);
r1:=0.0; r2:=1.0/r1; if (finite(r2)) then begin println ("r2 is finite"); end else begin println ("r2 is not finite"); end; end. |
floor |
下限(下一个较小的整数) |
1: REAL: |
REAL |
floor(-1.23); 结果为 -2 |
isnan |
检查一个实数变量的值是否为"NaN"(不是一个数字)。注意,除以 0 的结果不是 NaN。 要检查除 0 的结果,使用函数 "finite". |
1: REAL: |
BOOLEAN |
var r1,r2:real; begin enableRealDivByZeroException(false);
r1:=-1.0; r2:=pow (r1,0.5); if (isnan(r1)) then begin println ("r1 is NaN"); end else begin println ("r1 is not NaN"); end; end. |
Log |
自然对数 |
1: REAL: |
REAL |
log(10); 结果为 2.302585 |
Log10 |
基于 10 的对数 |
1: REAL: |
REAL |
log10(10); 结果为 1 |
max |
最大值 |
1: INTEGER 或 REAL: 2: INTEGER 或 REAL: |
INTEGER 或 REAL |
max(-4.2, -3); 结果为 -3 |
min |
最小值 |
1: INTEGER 或 REAL: 2: INTEGER 或 REAL: |
INTEGER 或 REAL |
min(-4.2, -3); |
pow |
幂计算 |
1: REAL: (基数) |
REAL |
pow(2, 0.3333) 结果为 1.259892 |
rand |
随机数 |
- |
INTEGER: 0 - 32767 之间的任何数字。 |
r:=rand; |
round |
四舍五入 |
1: REAL: |
REAL |
round(-4.46) 结果为 -4.0 |
sin |
正弦 |
1: REAL: |
REAL |
sin(0.25*3.141593); 结果为 0.707107 |
sqrt |
平方根 |
1: REAL: |
REAL |
sqrt(3); 结果为 1.732051 |
tan |
正切 |
1: REAL: |
REAL |
tan(0.25*3.141593); 结果为 1 |